1
Cơ chế gọi phương thức
AI035Lesson 13
00:00

Trong Ruby, việc gọi một phương thức không phải là một cú nhảy tĩnh đến địa chỉ bộ nhớ; nó là một sự kiện truyền tin nhắn động. Khi bạn gọi một phương thức, bạn đang gửi một thông điệp đến một người nhận. Thông điệp này bao gồm tên phương thức, các đối số tùy chọn, và một khả năng kết hợp khối.

1. Cú pháp gọi và sự mơ hồ

Ruby cho phép độ linh hoạt cao: Foo.BarFoo.Bar() là giống nhau. Tuy nhiên, Foo::Bar thường ám chỉ một hằng số, trong khi Foo::Bar() bắt buộc phải gọi phương thức. Dấu ngoặc thường bị bỏ qua để tạo ra trải nghiệm tương tự DSL, nơi các phương thức trông như thuộc tính.

2. Phân tích toán tử

Các toán tử thực chất là các phương thức có thể tái định nghĩa. Biểu thức expr1 + expr2 là dạng viết tắt của (expr1).+(expr2). Điều này áp dụng cho toán tử đơn (-obj), toán tử nhị phân (a < b), và toán tử hậu tố.

người nhậnThông điệp (Phương thức)Khối phụ trợchuyển quyền điều khiển

3. Cơ chế yield

Các phương thức sử dụng yield để đẩy luồng điều khiển vào khối liên quan. Sử dụng Kernel.block_given?, một phương thức có thể quyết định động cách xử lý logic dựa trên ngữ cảnh gọi.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>